package 题目集.贡献法;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        in.nextInt();
        char[] c;
        String string = in.next();
        c = string.toCharArray();
        int n = c.length;
        int left = 0;  //表示当前字符的左边有多少个与当前字符不同的连续字符的数量
        int right = 0;  //表示当前字符的右边有多少个与当前字符不同的连续字符的数量
        long ans = 0;

        for (int i = 0; i < n; i++)   //遍历每一个字符
        {
            left = 0;
            right = 0;
            //找到当前第i个字符左边有多少个连续的与之不同的字符数量，赋值给left
            for (int j = i; j >= 0; j--) {

                if (j == i) continue;
                if (c[j] != c[i]) left++;
                else break;
            }
            //找到当前第i个字符右边有多少个连续的与之不同的字符数量，赋值给right
            for (int j = i; j < n; j++) {
                if (j == i) continue;
                if (c[j] != c[i]) right++;
                else break;
            }
            //以当前字符为基准，分三种情况： （根据乘法原理）
            //1.left和right均大于1，满足孤独的照片的要求，左边有left种情况，右边有right种情况，相乘即可得有多少种满足照片的数量
            //2.不考虑左边的字符，单看右边，如果右边right数量大于等于2，满足照片要求，有right-1种
            //3.不考虑右边的字符，但看左边，如果左边left数量大于等于2，满足照片要求，有left-1种
            if (left >= 1 && right >= 1) {
                long a = left;
                long b = right;
                ans += a * b;
            }
            if (right >= 2) ans += right - 1;
            if (left >= 2) ans += left - 1;
        }

        System.out.println(ans);
    }
}
